package com.njtech.pet.service.impl;

import com.njtech.pet.dao.PowerDao;
import com.njtech.pet.entity.Power;
import com.njtech.pet.entity.User;
import com.njtech.pet.service.PowerService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by m1870 on 2020/4/15.
 */

@Service("powerService")
public class PowerServiceImpl implements PowerService{
    @Autowired
    @Resource(name = "powerDao")
    private PowerDao powerDao;


    /**
     * 插入一条权限记录
     * @param power 插入的记录，id可以为空
     * @return 修改行数
     */
    @Override
    public int insert(Power power) {

        return powerDao.insert(power);
    }

    /**
     * 修改一条权限记录
     * @param power 修改的记录，所有的均不能为空
     * @return 修改行数
     */
    @Override
    public int updateByPower(Power power) {

        return powerDao.updateByPowerId(power);
    }

    /**
     * 查询对应用户，不同power状态下在起止日期间的记录
     * @param user state必须为存在，若为null，则为所有
     * @param state 选择的权限状态，比如是否显示修改的记录
     * @return 权限集合
     */
    @Override
    public List<Power> selectByUserAndPowerState(User user,  String state) {

        return powerDao.selectByUserIdAndPowerState(user, state);
    }

    /**
     * 根据power id 搜索
     * @param id 权限 id
     * @return 权限
     */
    @Override
    public Power selectByPowerId( Integer id) {

        return powerDao.selectByPower(id);
    }

    @Override
    public int selectRowsByUserAndPower(User user, Power power, boolean isVague) {

        int num=powerDao.selectRowsByUserAndPower(user,power,isVague);
        return num;
    }
}
